/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jsf;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.Serializable;
import java.util.ArrayList;


import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import logic.Buscador;
import model.Documento;
import model.Valoracion;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;



@ManagedBean
@SessionScoped
public class BuscadorMB implements Serializable {

    private String consulta;
    private ArrayList<Valoracion> valoracionArray;
    private ArrayList<Integer> numerosArray;
    
    private StreamedContent pdfResourcePrimeFaces;



    public BuscadorMB() throws FileNotFoundException {
        numerosArray = new ArrayList<Integer>();
        for (int i = 0; i < 50; i++) {
            numerosArray.add(i);
        }

        

    }

    public String buscar() throws Exception {
        System.out.println("Entro");
        if (consulta.compareTo("") != 0) {
            Buscador buscador = new Buscador(consulta);
            valoracionArray = new ArrayList<Valoracion>();
            Valoracion[] valoraciones = buscador.buscar();
            for (int i = 0; i < valoraciones.length; i++) {
                Valoracion valoracion = valoraciones[i];
                valoracionArray.add(valoracion);
                System.out.println(valoracion.getDocumento().getNombre());
            }
        }

        return "resultado";

    }

    public StreamedContent getTengoFe() throws Exception{
         if (consulta.compareTo("") != 0) {
            Buscador buscador = new Buscador(consulta);
            valoracionArray = new ArrayList<Valoracion>();
            Valoracion[] valoraciones = buscador.buscar();
            //Devolvemos el archivo que resulta como primera ocurrencia (mayor valoración)
            return new DefaultStreamedContent(new FileInputStream(valoraciones[0].getDocumento().getPath()),"application",valoraciones[0].getDocumento().getNombre());
        }
        return null;

    }
  
    public StreamedContent obtenerArchivoPrime(Documento doc) throws FileNotFoundException{
        return new DefaultStreamedContent(new FileInputStream(new File(doc.getPath())), "application",doc.getNombre());

    }

    public String obtenerGraficoExtension (String nombreArchivo){
        String ext = nombreArchivo.substring(nombreArchivo.lastIndexOf(".") + 1).toLowerCase();
        System.out.println(ext);
        if(ext.compareTo("pdf") == 0){
            return "pdf.png";
        } else if (ext.compareTo("html") == 0 ||ext.compareTo("htm") == 0){
            return "html.png";
        } else if (ext.compareTo("txt") == 0){
            return "txt.jpg";
        }
        return null;
        
    }

    public String getConsulta() {
        return consulta;
    }

    public void setConsulta(String consulta) {
        this.consulta = consulta;
    }

    public ArrayList<Valoracion> getValoracionArray() {
        return valoracionArray;
    }

    public void setValoracionArray(ArrayList<Valoracion> valoracionArray) {
        this.valoracionArray = valoracionArray;
    }

    public ArrayList<Integer> getNumerosArray() {
        return numerosArray;
    }

    public void setNumerosArray(ArrayList<Integer> numerosArray) {
        this.numerosArray = numerosArray;
    }


    public StreamedContent getPdfResourcePrimeFaces() {
        return pdfResourcePrimeFaces;
    }

    public void setPdfResourcePrimeFaces(StreamedContent pdfResourcePrimeFaces) {
        this.pdfResourcePrimeFaces = pdfResourcePrimeFaces;
    }

    
}
